import Vue from 'vue'
import VueRouter from 'vue-router'
// import Login from "@/views/Login/index.vue"
import {getToken} from "@/config/auth.js"

Vue.use(VueRouter)

const routes = [
  // {
  //   path: '/login',
  //   name: 'login',
  //   component: Login,
  //   meta:{

  //   }
  // },
  {
    path: '/',
    name: 'index',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '@/views/Activity/index.vue'),
    meta:{
      
    },
   
  },
  {
    path: '/activity',
    name: 'activity',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '@/views/Activity/index.vue'),
    meta:{
      
    },
   
  },
  {
    path: '/activity/news-list',
    name: 'newsList',
    component: () => import(/* webpackChunkName: "news" */ '@/views/Activity/NewsList.vue'),
    meta:{
      title: '活动资讯'
    }
  },
  {
    path: '/activity/news-detail',
    name: 'newsDetail',
    component: () => import(/* webpackChunkName: "news" */ '@/views/Activity/NewsDetail.vue'),
    meta:{
      title: '资讯详情'
    }
  }
]

const router = new VueRouter({
  mode: 'hash',
  base: process.env.BASE_URL,
  routes
})

/**
 * 参考：https://v3.router.vuejs.org/zh/guide/advanced/meta.html
 * 全局前置路由守卫————初始化的时候被调用、每次路由切换之前被调用
 * router.beforeEach((to,from,next)=>{
  console.log('前置路由守卫',to,from)
  if(to.meta.isAuth){//判断是否需要鉴权
    if(localStorage.getItem('school')==='atguigu'){
      next();
    }else{
      alert('学校名不对，无权限查看！')
    }
  }else{
    next();
  }
})
 * 全局后置路由守卫————初始化的时候被调用、每次路由切换之后被调用
router.afterEach((to,from)=>{
	console.log('后置路由守卫',to,from)
  document.title=to.meta.title || '硅谷系统'
})
  路由独享的守卫
 * beforeEnter:(to,from,next)=>{
    console.log('独享路由守卫',to,from)
    if(to.meta.isAuth){//判断是否需要鉴权
      if(localStorage.getItem('school')==='atguigu'){
        next();
      }else{
        alert('学校名不对，无权限查看！')
      }
    }else{
      next();
    }
  }

 * 组件内路由守卫:
 * beforeRouteEnter(to, from, next) {
    // 在渲染该组件的对应路由被 confirm 前调用
    // 不！能！获取组件实例 `this`
    // 因为当守卫执行前，组件实例还没被创建
  },
  beforeRouteUpdate(to, from, next) {
    // 在当前路由改变，但是该组件被复用时调用
    // 举例来说，对于一个带有动态参数的路径 /foo/:id，在 /foo/1 和 /foo/2 之间跳转的时候，
    // 由于会渲染同样的 Foo 组件，因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
    // 可以访问组件实例 `this`
  },
  beforeRouteLeave(to, from, next) {
    // 导航离开该组件的对应路由时调用
    // 可以访问组件实例 `this`
  }

  路由元信息
  定义路由的时候可以配置 meta 字段：

const router = new VueRouter({
  routes: [
    {
      path: '/foo',
      component: Foo,
      children: [
        {
          path: 'bar',
          component: Bar,
          // a meta field
          meta: { requiresAuth: true }
        }
      ]
    }
  ]
})
 */

// 全局前置守卫
// router.beforeEach(function(to, from, next){
//   const isToken=getToken();
//   if(to.path=="/login") {
//     next();
//   }else {
//     isToken?next():next("/login");
//   }
// })


export default router
